rand関数は、乱数を生成します。乱数の種(ランダムシード)を設定したい場合は、srand関数を使用します。なお、srand関数で種を設定していない場合の種は1です。
#include <stdlib.h>
int rand(void);
void srand(unsigned int seed);
seedは乱数の種を指定します。種が同じ場合は、生成する乱数の値も同じになります。
rand関数は戻り値として、0からRAND_MAXの間の疑似乱数整数を返します。srand関数の戻り値はありません。
プログラム 例
#include <stdio.h>
#include <stdlib.h>
/* 列数 */
#define ROW_MAX 10
/* 乱数の種 */
#define RANDOM_SEED 123U
int main(void)
{
int num;
int random;
srand(RANDOM_SEED);
for (num = 1; num <= 50; ++num) {
/* 1~10の間の乱数を生成 */
random = 1 + (int) (10.0 * rand() / (RAND_MAX + 1.0));
printf('%4d', random);
if ((num % ROW_MAX) == 0) {
printf('\n'); /* 改行 */
}
}
return 0;
}
例の実行結果
$ ./rand.exe 1 8 3 4 4 2 4 3 1 9 7 4 4 9 5 5 8 10 8 4 9 4 4 1 2 9 3 10 8 1 2 9 8 4 3 2 6 6 5 6 5 1 10 8 9 4 3 7 4 10 $